package com.jx.jpaQuery;

import java.text.MessageFormat;
import java.util.List;

import com.alibaba.fastjson.JSON;
import com.jx.util.Utility;

/**
 * <p>转换条件
 * <p>页面传入的json参数的条件转换为{@link QueryCondition 条件对象
 * 
 * @author <h1>jiangxu2  2019年11月20日</h1>
 * @version v1.11.20.2019
 * @since 1.0
 * @see #initCondition(Integer, Integer, String,String,String,String,boolean)
 */
public class ConvertCondition {
    
    /**
	 * 
	 * <p>模糊查询  {@link String 获取模糊查询的值}
	 * @param val
	 * @return
	 */
    public static String getLikeVal(String val){
		return MessageFormat.format("%{0}%", val);
	}
	
	/**
	 * <p>模糊查询 以XX开头 模糊后面的  {@link String 获取模糊查询的值}
	 * @param val
	 * @return
	 */
    public static String getRLikeVal(String val){
		return MessageFormat.format("{0}%", val);
	}
	
	/**
	 * 
	 * <p>模糊查询 以XX结尾 模糊前面的  {@link String 获取模糊查询的值}
	 * @param val
	 * @return
	 */
    public static String getLLikeVal(String val){
		return MessageFormat.format("%{0}", val);
	}
    
    
    public static QueryCondition initCondition(String param,boolean ... status){
    	QueryCondition condit=new QueryCondition();
    	condit.setStatus((status!=null && status.length>0)?status[0]:true);
    	if(Utility.isNotBlank(param)){
    		List<ConditionField> list=JSON.parseArray(param, ConditionField.class);
    		list.forEach(cf->{
    			if(Utility.isNotBlank(cf.getValue())){
    				condit.getConditions().add(cf);
    			}
    		});
    	}
    	return condit;
    }
}
